Documentation d’installation Zabbix
Installation et configuration de Zabbix
Suivez les étapes ci-dessous pour installer et configurer Zabbix sur Ubuntu Server 22.04.
a. Installer le dépôt Zabbix
Exécutez ces commandes :
wget https://repo.zabbix.com/zabbix/6.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.4-1+ubuntu22.04_all.deb
dpkg -i zabbix-release_6.4-1+ubuntu22.04_all.deb
apt update
b. Installer le serveur Zabbix, l'interface utilisateur, l'agent
Exécutez cette commande :
apt install zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-sql-scripts zabbix-agent
c. Créer la base de données initiale
Assurez-vous que votre serveur de base de données est en cours d'exécution.
Exécutez les commandes suivantes sur votre hôte de base de données :
sudo apt install mysql-server
mysql -uroot -p
create database zabbix character set utf8mb4 collate utf8mb4_bin;
create user zabbix@localhost identified by 'password';
grant all privileges on zabbix.* to zabbix@localhost;
set global log_bin_trust_function_creators = 1;
quit;
Sur l'hôte du serveur Zabbix, importez le schéma initial et les données. Il vous sera demandé d'entrer le mot de passe que vous venez de créer.
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix
Désactivez l'option log_bin_trust_function_creators après avoir importé le schéma de la base de données.
mysql -uroot -p
set global log_bin_trust_function_creators = 0;
quit;
d. Configurer la base de données pour le serveur Zabbix
Modifiez le fichier /etc/zabbix/zabbix_server.conf et ajoutez cette ligne : DBPassword=password.
e. Configurer PHP pour l'interface utilisateur de Zabbix
Modifiez le fichier /etc/zabbix/nginx.conf, décommentez et définissez les directives 'listen' et 'server_name'.
listen 8080;
server_name example.com;
e. Configurer le certificat SSL autosigné
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/zabbix-selfsigned.key -out /etc/ssl/certs/zabbix-selfsigned.crt
Modifiez le fichier /etc/nginx/sites-available/default/ . Voici un exemple de configuration que j’utilise dans mon cas avec des certification générés et signé par mon autorité de certification. J’ai aussi redirigé le port 80 vers le https.
server {
listen 80;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
#root /var/www/html;
index index.html index.htm index.nginx-debian.html;
ssl_certificate /etc/ssl/certs/zabbix-selfsigned.crt;
ssl_certificate_key /etc/ssl/private/zabbix-selfsigned.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_dhparam /etc/nginx/dhparam.pem;
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384;
ssl_ecdh_curve secp384r1;
ssl_session_timeout 10m;
ssl_session_cache shared:SSL:10m;
resolver 192.168.42.129 8.8.8.8 valid=300s;
resolver_timeout 5s;
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload";
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
access_log /var/log/nginx/guac_access.log;
error_log /var/log/nginx/guac_error.log;
location / {
proxy_pass http://zabbix.infra.dom:8080;
proxy_buffering off;
proxy_http_version 1.1;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $http_connection;
proxy_cookie_path /guacamole/ /;
}
}
sudo openssl dhparam -dsaparam -out /etc/nginx/dhparam.pem 4096
f. Démarrer les processus du serveur et de l'agent Zabbix
Démarrez les processus du serveur et de l'agent Zabbix et faites-les démarrer au démarrage du système.
systemctl restart zabbix-server zabbix-agent nginx php8.1-fpm
systemctl enable zabbix-server zabbix-agent nginx php8.1-fpm
g. Ouvrir la page Web de l'interface utilisateur de Zabbix
L'URL pour l'interface utilisateur de Zabbix lors de l'utilisation de Nginx dépend des modifications de configuration que vous devriez avoir effectuées. Dans mon cas, cela est https://zabbix.infra.dom
h. Installation de l'agent Zabbix sur linux
Tout d'abord, téléchargez l'agent Zabbix en utilisant wget :
wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.0-4+ubuntu22.04_all.deb
Ensuite, installez le paquet téléchargé :
sudo dpkg -i zabbix-release_6.0-4+ubuntu22.04_all.deb
Mettez à jour votre liste de paquets :
sudo apt update
Installez l'agent Zabbix :
sudo apt install zabbix-agent2
Ouvrez le fichier de configuration de l'agent Zabbix avec nano :
sudo nano /etc/zabbix/zabbix_agentd.conf
Enfin, définissez les paramètres de configuration suivants :
Server=<IP_du_serveur_Zabbix>
ServerActive=<IP_du_serveur_Zabbix>
Hostname=<Nom_d'hôte_du_client_Ubuntu>
I. Utiliser les templates Zabbix
Prérequis : avoir ajouté un hôte dans Zabbix.
Dans la configuration de l’hôte, sélectionner “modèles” puis naviguer et trouver le modèle en fonction de la supervision désirée.

J. Monitorer MySQL
- Installer Zabbix Agent 2 sur le serveur MySQL : Vous pouvez le faire en utilisant les commandes d'installation de Zabbix Agent 2 mentionnées dans le document.
- Autoriser zabbix a monitorer mysql :
sudo mysql -u root
CREATE USER 'zbx_monitor'@'%' IDENTIFIED BY '<password>';
GRANT REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO 'zbx_monitor'@'%';
- Créer .my.cnf pour zabbix :
sudo mkdir /var/lib/zabbix,sudo nano /var/lib/zabbix/.my.cnf
[client]
user='zbx_monitor'
password='<password>'
- Autoriser zabbix a écouter mysql :
sudo nano /etc/mysql/my.cnf
bind-address = 0.0.0.0
- Redémarrer Zabbix Agent : Après avoir effectué les modifications, vous devez redémarrer Zabbix Agent pour qu'il commence à surveiller MySQL. Vous pouvez le faire avec la commande
systemctl restart zabbix-agent2. - Ajouter le serveur MySQL à Zabbix Server : Vous devez ajouter le serveur MySQL à Zabbix Server pour pouvoir le surveiller. Vous pouvez le faire dans l'interface utilisateur de Zabbix.
- Appliquer le modèle MySQL à l'hôte : Enfin, vous devez appliquer le modèle MySQL à l'hôte que vous venez d'ajouter. Dans l'interface utilisateur de Zabbix, naviguez vers
Configuration>Hosts, cliquez sur le nom de l'hôte, puis surTemplates. Ajoutez le modèleTemplate DB MySQL. - Ajouter les macros à Zabbix lors de la configuration de l’hote:
{$MYSQL.DSN}– définissez la source de données du serveur MySQL (la chaîne de connexion d'une session nommée à partir du fichier de configuration du plugin MySQL Zabbix agent 2). Ce guide utilise la source de données par défaut "tcp://localhost:3306" pour surveiller un serveur MySQL installé sur la même machine que le serveur Zabbix et l'agent Zabbix 2.{$MYSQL.PASSWORD}– définissez le mot de passe de l'utilisateur MySQL "zbx_monitor" précédemment créé.{$MYSQL.USER}– définissez le nom de l'utilisateur MySQL "zbx_monitor" précédemment créé.
- Vérification de la supervision Mysq :
On peut voir ici le trafic de la base de données de mon GLPI supervisée dans Zabbix :

k. Création d'alertes par e-mail
- Configurer le serveur de messagerie : Dans l'interface utilisateur de Zabbix, naviguez vers
Administration>Media typeset cliquez surEmail. Remplissez les détails du serveur SMTP, comme l'adresse du serveur, le port, l'adresse e-mail de l'expéditeur, etc. - Ajouter un média à l'utilisateur : Allez à
Administration>Users, sélectionnez un utilisateur et cliquez sur l'ongletMedia. Cliquez surAddet remplissez les détails, y compris le type de média (Email), l'adresse e-mail à laquelle envoyer les alertes, et quand recevoir les alertes. - Créer une action : Allez à
Configuration>Actionset cliquez surCreate action. Dans l'ongletOperation, cliquez surAddet définissez l'opération àSend messageà l'utilisateur ou au groupe d'utilisateurs choisi, et sélectionnez le type de média (Email). - Configurer les conditions d'alerte : Dans l'onglet
Conditions, définissez les conditions pour déclencher l'alerte, par exemple, si une certaine gravité d'événement est atteinte, si un problème spécifique survient, etc. - Sauvegarder l'action : Cliquez sur
Addpour sauvegarder l'action. Les alertes seront maintenant envoyées à l'adresse e-mail spécifiée lorsque les conditions définies sont remplies.
l. Vérification des alertes :
Lors du redémarrage ou d’un changement d’état d’une VM supervisée, je reçois un e-mail indiquant celui ci :
